package io.gitee.yaoshanli.engine.service;

import io.gitee.yaoshanli.engine.model.WfCodeModel;

import java.util.List;

public interface ICodeService {

    /**
     * 验证当前流程是否存在
     * @param wfCodeModel
     * @param idOrCode     guid 或者 code
     * @return
     */
    boolean checkFlow(WfCodeModel wfCodeModel, String idOrCode);

    /**
     *  保存更新工作流
     * @param wfCodeModel
     * @return
     */
    boolean saveOrUpdate(WfCodeModel wfCodeModel);

    /**
     * 删除工作流
     * @param idOrCode
     * @return
     */
    boolean remove(String idOrCode);

    /**
     * 彻底删除当前流程及相关的业务数据
     * @param idOrCode
     * @return
     */
    boolean removeAndTask(String idOrCode);

    /**
     * 根据ID 或者 code获取工作流
     * @param idOrCode
     * @return
     */
    WfCodeModel getWfCode(String idOrCode);

    /**
     * 获取所有流程列表信息，需要分页
     * @return
     */
    List<WfCodeModel> getWfCodePage();

}
